﻿namespace Diplom.Utilities
{
    using System;
    using System.Text;
    using System.Globalization;
    using Diplom.NumericArrays;


    public static class Saver
    {

        /// <summary>
        /// Сохраняем одномерный массив в файл
        /// Если при сохранении произошла ошибка, возвращаю Exception.ToString(),
        /// если ошибок нет - возвращаю null
        /// </summary>
        /// <param name="array">"Сохраняемый" массив</param>
        /// <param name="path">Путь к файлу</param>
        /// <returns></returns>
        public static string Save1DArrayToFile(ref Numeric1DArray array, string path)
        {
            CultureInfo culture = null;
            culture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            System.IO.StreamWriter sw = null;

            try
            {
                sw = new System.IO.StreamWriter(path);
                sw.WriteLine(array.Length);
                for (int i = 0; i < array.Length; i++)
                {
                    sw.WriteLine(i + " " + array.Items[i]);
                }
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
            finally
            {
                if (sw != null)
                {
                    sw.Close();
                    sw.Dispose();
                    sw = null;
                }
                System.Threading.Thread.CurrentThread.CurrentCulture = (CultureInfo)culture.Clone();
                culture = null;
            }
            return null;
        }
    }
}
